#define _CRT_SECURE_NO_WARNINGS 1

//#include <stdio.h>
//
//int main()
//{
//	int i = 3;
//	while (i < 100)
//	{
//		printf("%d ",i);
//		i += 3;
//	}
//	return 0;
//}


//#include <stdio.h>
//
//void judge(int x, int y, int z)
//{
//	if (x > y)
//	{
//		if (y > z)
//		{
//			printf("%d %d %d\n", x, y, z);
//		}
//		else 
//		{
//			if (x > z)
//			{
//				printf("%d %d %d\n", x, z, y);
//			}
//			else printf("%d %d %d\n", z, x, y);
//		}
//	}
//	else
//	{
//		if (y < z)
//		{
//			printf("%d %d %d\n", z, y, x);
//		}
//		else
//		{
//			if (x > z)
//			{
//				printf("%d %d %d\n", y, x, z);
//			}
//			else printf("%d %d %d\n", y, z, x);
//		}
//	}
//}
//
//int main()
//{
//	int a, b, c = 0;
//	scanf("%d %d %d", &a, &b, &c);
//	judge(a, b, c);
//	return 0;
//}

//#include <stdio.h>
//
//int main()
//{
//	int i = 100;
//	int j = 0;
//	while (i < 200)
//	{
//		for (j = 2; j <= i / 2; j++)
//		{
//			if (i % j == 0) break;
//			if (j == i / 2) printf("%d ", i);
//		}
//		i++;
//	}
//	return 0;
//}

//#include <stdio.h>
//int main()
//{
//	int n = 1000;
//	while (n <= 2000)
//	{
//		if (n % 4 == 0)
//		{
//			if (n % 100 != 0) printf("%d ", n);
//		}
//		n++;
//	}
//	return 0;
//}

#include <stdio.h>

int main()
{
	int a, b = 0;
	int min, max, i = 0;
	scanf("%d %d", &a, &b);
	if (a > b)
	{
		max = a;
		min = b;
	}
	else
	{
		max = b;
		min = a;
	}
	if (max % min == 0) printf("%d\n", min);
	else
	{
		for (i = min/2; i > 1; i--)
		{
			if (min % i == 0)
			{
				if (max % i == 0)
				{
					printf("%d\n", i);
					break;
				}
			}
		}
	}
	
	return 0;
}